In a wired or wireless network in which data is sent from one device to another, it is necessary to provide for the situation in which packets or frames of data sent from one device are not successfully received by the device they were intended for. This can be caused by any number of reasons including channel quality, receiver errors, and transmitter errors.
Because of this very real possibility of broken communication links, many networks provide a mechanism by which a receiving device can indicate to a transmitter whether the data transmission was successful. One such mechanism is the acknowledgement frame, which can be sent by a receiver device back to the transmitting device as a receive receipt for a data frame. Thus, after a transmitting device (also called the source device) successfully sends a data frame to a receiving device (also called a destination device), the destination device may send an acknowledgement frame to the source device.
Providing the source device successfully receives the acknowledgment frame (which may be subject to the same transmission difficulties as a data frame), the source device will have a solid indicator that the data was not only sent, but was received.
Absent receiving an acknowledgment of transmission, the source device will remain uncertain as to whether the data indeed was successfully received. In such cases, the relevant protocol may provide a way for the source device to resend the data to the destination device in an effort to successfully pass it through.
Of course, if the source device were allowed to keep trying indefinitely to resend a data frame, the data transmission could get frozen on a single frame. As a result, many protocols will provide for a maximum number of times that a source device can retry sending a particular data frame before that attempt is considered a failure. Once a failure is indicated, the system can then take the necessary steps to address the problem. This could include changing transmission parameters to achieve a better connection, ignoring the data frame if it was not critical, or providing a user with an error message.
Of course, for each retry attempt, the source device must devote a certain amount of time to listening for an acknowledgement from the destination device before it can resend the data frame. This time would at a minimum be the round trip transmission time between the source and destination devices, plus a processing time at the destination device. If the network has only a single channel then that channel cannot transmit data during this acknowledgement waiting period.
As the number of retry attempts increases, this will serve to reduce the network's data rate by taking time away from data transmission and allocating it to waiting for acknowledgements.